package com.tutu.service;

import com.tutu.entity.vo.BaseCodeVo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * CompanyService
 * Created by 奕恒 on 2022/10/20 21:50.
 */
public interface CompanyService {

    // 查询（分页）
    Map<String, Object> pageByParams(String keyWord, Integer page, Integer limit);

    // 查询（分页）
    Map<String, Object> pageByParams(Integer companyId, String keyWord, Integer type, Integer page, Integer limit);

    // 查询详情
    Map<String, Object> getInfoById(Integer id);

    // 根据公司ID查询对应的用户列表
    List<BaseCodeVo> findUserListByCompanyId(Integer companyId);

    // 更新公司和用户的关联关系
    Map<String, Object> updateCompanyUser(HttpServletRequest request, Integer companyId, Integer selectCompanyId, String userIds);

    // 添加 or 修改
    Map<String, Object> saveInfo(HttpServletRequest request, Integer id, String name, String endTime);

    // 删除
    Map<String, Object> deleteById(HttpServletRequest request, Integer id);

    // 批量删除
    Map<String, Object> batchDel(HttpServletRequest request, String ids);

    // 设置公司联系人
    Map<String, Object> setContact(HttpServletRequest request, Integer companyId, Integer userId, Integer type);

    // 清除公司联系人
    Map<String, Object> cleanContact(HttpServletRequest request, Integer companyId);

    // 同步公司信息
    Map<String, Object> syncData(HttpServletRequest request);

    // 合并公司信息
    Map<String, Object> mergeInfo(HttpServletRequest request, Integer mainCompanyId, Integer otherCompanyId);

    // 生成公司二维码并返回
    void createQRCode(HttpServletResponse response, Integer companyId);

    // 加载缓存数据
    void loadCacheData();
}
